require "./base_channel"
require "action-controller"
require "action-controller/server"

module Northwind::Channel
  # Контроллер канала на основе веб сокета
  class WebsocketController < AC::Base
    base "/"

    @[AC::Route::WebSocket("/channel")]
    def websocket(socket)
      socket.on_message do |message|
        socket.send(message)
      end

      socket.on_close do
      end
    end
  end

  # Канал через вебсокет
  class WebsocketChannel < BaseChannel
    # Запускает работу канала
    def start
      server = AC::Server.new
      server.run
    end

    # Назначает обработчик запросов
    def read : ChannelRequestInfo
    end
  end
end
